﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Persistente;
using Persistente.Administrador;
using Util.Criptografia.MD5;

namespace Negocio.Admin
{
    public class NAdministrador
    {
        public int idUsuarioAdministracao { get; set; }
        public string nmUsuarioAdministracao { get; set; }
        public string teEmail { get; set; }
        public string teSenha { get; set; }
        public int csStatus { get; set; }
        public int csTipoUsuario { get; set; }

        public bool Salvar()
        {
            var obMd5 = new criptografiaMD5();
            teSenha = obMd5.criptografaSenha(teSenha);
            var obPAdmin = new PAdministrador();
            return obPAdmin.Salvar(nmUsuarioAdministracao, teEmail, teSenha, csStatus, csTipoUsuario);
        }

        public bool verificarLogin()
        {
            var obMd5 = new criptografiaMD5();
            teSenha = obMd5.criptografaSenha(teSenha);
            var obPAdmin = new PAdministrador();
            var obAdministrador = obPAdmin.verificarLogin(this.teEmail, this.teSenha);

            if(obAdministrador != null)
            {
                nmUsuarioAdministracao = obAdministrador.nm_usuario_administracao;
                csStatus = Convert.ToInt32(obAdministrador.cs_status);
                idUsuarioAdministracao = obAdministrador.id_usuario_administracao;
                return true;
            }else
            {
                return false;
            }
        }

        public DataSet pegarAdministradores(string nmAdministrador = null, string teEmail = null, int csStatus = 0)
        {
            var obPAdministrador = new PAdministrador();
            return obPAdministrador.pegarAdministradores(nmAdministrador, teEmail, csStatus);
        }

        public bool Remover(int idAdministrador)
        {
            var obPAdmin = new PAdministrador();
            return obPAdmin.Remover(idAdministrador);
        }

        public void pegarAdministradorPorId()
        {
            var obPAdministrador = new PAdministrador();
            var obTbAdmin = obPAdministrador.pegarAdministradorPorId(idUsuarioAdministracao);
            if (obTbAdmin != null)
            {
                idUsuarioAdministracao = obTbAdmin.id_usuario_administracao;
                teEmail = obTbAdmin.te_email;
                nmUsuarioAdministracao = obTbAdmin.nm_usuario_administracao;
                csStatus = Convert.ToInt32(obTbAdmin.cs_status);
                csTipoUsuario = Convert.ToInt32(obTbAdmin.cs_tipo_usuario);
            }
        }

        public bool Alterar(int idAdministrador)
        {
            var obPAdministrador = new PAdministrador();
            var obTbAdmin = new tb_usuario_administracao();
            obTbAdmin.nm_usuario_administracao = nmUsuarioAdministracao;
            obTbAdmin.te_email = teEmail;
            obTbAdmin.cs_status = csStatus;
            obTbAdmin.cs_tipo_usuario = csTipoUsuario;
            return obPAdministrador.Alterar(idAdministrador, obTbAdmin);
        }
    }
}
